package com.haima.agentpartner;

import android.os.Parcel;
import android.os.Parcelable;

public class DeviceInfo implements Parcelable {
    private String gameName;             // 游戏名
    private String wifiAddress;          // wifi mac
    private String wifiSsid;             // wifi name
    private String androidId;            // android_id
    private String imei;                 // imei. TelephonyManager.getDeviceSoftwareVersion() && getDeviceId() && getImei()
    private String model;                // ro.product.model, Build.MODEL
    private String brand;                // ro.product.brand, Build.BRAND
    private String simOperatorName;      // gsm.sim.operator.alpha, 运营商信息【中国电信、中国联通、中国移动】
    private String displayId;            // ro.build.display.id, Build.DISPLAY
    private String fingerPrint;          // ro.build.fingerprint, Build.FINGERPRINT
    private String bootLoader;           // ro.bootloader, Build.BOOTLOADER
    private String procVersion;          // /proc/version, 内核信息【Linux version 1.1.528-qgki-9459DC606CB2A3FC (user2@my-device) (gcc version 8C737D0C (https://android.googlesource.com/toolchain/llvm-project 77CE5EF19DF7E55AB8BA23217F9D9614B562A5BA), LLD 79A3C88C (https://android.googlesource.com/toolchain/llvm-project CE5ECB8D02133FB68C6EC6DC6130CB60F59A408C)) #1 SMP PREEMPT 20 Mar 2010 16:23:31 UTC f2fs-hash:EDBEF63F】
    private String codeName;             // ro.build.version.codename, Build.VERSION.CODENAME
    private String baseBand;             // gsm.version.baseband, 基带版本
    private String osVersion;            // ro.build.version.release, Build.VERSION.RELEASE
    private String osSdkVersion;         // ro.build.version.sdk, Build.VERSION.SDK_INT
    private String bootId;               // /proc/sys/kernel/random/boot_id
    private String incremental;          // ro.build.version.incremental, Build.VERSION.INCREMENTAL
    private String wifiBssid;            // wifi bssid
    private String wifiIp;               // wifi ip
    private String serialno;             // ro.serialno
    private String device;               // ro.product.device, Build.DEVICE
    private String board;                // ro.product.board, Build.BOARD
    private String product;              // ro.product.name, Build.PRODUCT
    private String manufacturer;         // ro.product.manufacturer, Build.MANUFACTURER
    private String buildId;              // ro.build.id, Build.ID
    private String buildType;            // ro.build.type, Build.TYPE
    private String buildHost;            // ro.build.host, Build.HOST
    private String buildTags;            // ro.build.tags, Build.TAGS, 默认"release-keys"
    private String buildUser;            // ro.build.user, Build.USER
    private long buildTime;              // ro.build.date.utc, Build.TIME
    private String buildDescription;     // ro.build.description
    private String hardware;             // ro.hardware, 硬件信息
    private String characteristics;      // ro.build.characteristics
    private String imsi;                 // imsi, TelephonyManager.getSubscriberId()
    private String iccid;                // iccid. TelephonyManager.getSimSerialNumber()

    public DeviceInfo() {
    }

    protected DeviceInfo(Parcel in) {
        gameName = in.readString();
        wifiAddress = in.readString();
        wifiSsid = in.readString();
        androidId = in.readString();
        imei = in.readString();
        model = in.readString();
        brand = in.readString();
        simOperatorName = in.readString();
        displayId = in.readString();
        fingerPrint = in.readString();
        bootLoader = in.readString();
        procVersion = in.readString();
        codeName = in.readString();
        baseBand = in.readString();
        osVersion = in.readString();
        osSdkVersion = in.readString();
        bootId = in.readString();
        incremental = in.readString();
        wifiBssid = in.readString();
        wifiIp = in.readString();
        serialno = in.readString();
        device = in.readString();
        board = in.readString();
        product = in.readString();
        manufacturer = in.readString();
        buildId = in.readString();
        buildType = in.readString();
        buildHost = in.readString();
        buildTags = in.readString();
        buildUser = in.readString();
        buildTime = in.readLong();
        buildDescription = in.readString();
        hardware = in.readString();
        characteristics = in.readString();
        imsi = in.readString();
        iccid = in.readString();
    }

    public static final Creator<DeviceInfo> CREATOR = new Creator<DeviceInfo>() {
        @Override
        public DeviceInfo createFromParcel(Parcel in) {
            return new DeviceInfo(in);
        }

        @Override
        public DeviceInfo[] newArray(int size) {
            return new DeviceInfo[size];
        }
    };

    @Override
    public int describeContents() {
        return 0;
    }

    @Override
    public void writeToParcel(Parcel parcel, int i) {
        parcel.writeString(gameName);
        parcel.writeString(wifiAddress);
        parcel.writeString(wifiSsid);
        parcel.writeString(androidId);
        parcel.writeString(imei);
        parcel.writeString(model);
        parcel.writeString(brand);
        parcel.writeString(simOperatorName);
        parcel.writeString(displayId);
        parcel.writeString(fingerPrint);
        parcel.writeString(bootLoader);
        parcel.writeString(procVersion);
        parcel.writeString(codeName);
        parcel.writeString(baseBand);
        parcel.writeString(osVersion);
        parcel.writeString(osSdkVersion);
        parcel.writeString(bootId);
        parcel.writeString(incremental);
        parcel.writeString(wifiBssid);
        parcel.writeString(wifiIp);
        parcel.writeString(serialno);
        parcel.writeString(device);
        parcel.writeString(board);
        parcel.writeString(product);
        parcel.writeString(manufacturer);
        parcel.writeString(buildId);
        parcel.writeString(buildType);
        parcel.writeString(buildHost);
        parcel.writeString(buildTags);
        parcel.writeString(buildUser);
        parcel.writeLong(buildTime);
        parcel.writeString(buildDescription);
        parcel.writeString(hardware);
        parcel.writeString(characteristics);
        parcel.writeString(imsi);
        parcel.writeString(iccid);
    }

    public String getGameName() {
        return gameName;
    }

    public void setGameName(String gameName) {
        this.gameName = gameName;
    }

    public String getWifiAddress() {
        return wifiAddress;
    }

    public void setWifiAddress(String wifiAddress) {
        this.wifiAddress = wifiAddress;
    }

    public String getWifiSsid() {
        return wifiSsid;
    }

    public void setWifiSsid(String wifiSsid) {
        this.wifiSsid = wifiSsid;
    }

    public String getAndroidId() {
        return androidId;
    }

    public void setAndroidId(String androidId) {
        this.androidId = androidId;
    }

    public String getImei() {
        return imei;
    }

    public void setImei(String imei) {
        this.imei = imei;
    }

    public String getModel() {
        return model;
    }

    public void setModel(String model) {
        this.model = model;
    }

    public String getBrand() {
        return brand;
    }

    public void setBrand(String brand) {
        this.brand = brand;
    }

    public String getSimOperatorName() {
        return simOperatorName;
    }

    public void setSimOperatorName(String simOperatorName) {
        this.simOperatorName = simOperatorName;
    }

    public String getDisplayId() {
        return displayId;
    }

    public void setDisplayId(String displayId) {
        this.displayId = displayId;
    }

    public String getFingerPrint() {
        return fingerPrint;
    }

    public void setFingerPrint(String fingerPrint) {
        this.fingerPrint = fingerPrint;
    }

    public String getBootLoader() {
        return bootLoader;
    }

    public void setBootLoader(String bootLoader) {
        this.bootLoader = bootLoader;
    }

    public String getProcVersion() {
        return procVersion;
    }

    public void setProcVersion(String procVersion) {
        this.procVersion = procVersion;
    }

    public String getCodeName() {
        return codeName;
    }

    public void setCodeName(String codeName) {
        this.codeName = codeName;
    }

    public String getBaseBand() {
        return baseBand;
    }

    public void setBaseBand(String baseBand) {
        this.baseBand = baseBand;
    }

    public String getOsVersion() {
        return osVersion;
    }

    public void setOsVersion(String osVersion) {
        this.osVersion = osVersion;
    }

    public String getOsSdkVersion() {
        return osSdkVersion;
    }

    public void setOsSdkVersion(String osSdkVersion) {
        this.osSdkVersion = osSdkVersion;
    }

    public String getBootId() {
        return bootId;
    }

    public void setBootId(String bootId) {
        this.bootId = bootId;
    }

    public String getIncremental() {
        return incremental;
    }

    public void setIncremental(String incremental) {
        this.incremental = incremental;
    }

    public String getWifiBssid() {
        return wifiBssid;
    }

    public void setWifiBssid(String wifiBssid) {
        this.wifiBssid = wifiBssid;
    }

    public String getWifiIp() {
        return wifiIp;
    }

    public void setWifiIp(String wifiIp) {
        this.wifiIp = wifiIp;
    }

    public String getSerialno() {
        return serialno;
    }

    public void setSerialno(String serialno) {
        this.serialno = serialno;
    }

    public String getDevice() {
        return device;
    }

    public void setDevice(String device) {
        this.device = device;
    }

    public String getBoard() {
        return board;
    }

    public void setBoard(String board) {
        this.board = board;
    }

    public String getProduct() {
        return product;
    }

    public void setProduct(String product) {
        this.product = product;
    }

    public String getManufacturer() {
        return manufacturer;
    }

    public void setManufacturer(String manufacturer) {
        this.manufacturer = manufacturer;
    }

    public String getBuildId() {
        return buildId;
    }

    public void setBuildId(String buildId) {
        this.buildId = buildId;
    }

    public String getBuildType() {
        return buildType;
    }

    public void setBuildType(String buildType) {
        this.buildType = buildType;
    }

    public String getBuildHost() {
        return buildHost;
    }

    public void setBuildHost(String buildHost) {
        this.buildHost = buildHost;
    }

    public String getBuildTags() {
        return buildTags;
    }

    public void setBuildTags(String buildTags) {
        this.buildTags = buildTags;
    }

    public String getBuildUser() {
        return buildUser;
    }

    public void setBuildUser(String buildUser) {
        this.buildUser = buildUser;
    }

    public long getBuildTime() {
        return buildTime;
    }

    public void setBuildTime(long buildTime) {
        this.buildTime = buildTime;
    }

    public String getBuildDescription() {
        return buildDescription;
    }

    public void setBuildDescription(String buildDescription) {
        this.buildDescription = buildDescription;
    }

    public String getHardware() {
        return hardware;
    }

    public void setHardware(String hardware) {
        this.hardware = hardware;
    }

    public String getCharacteristics() {
        return characteristics;
    }

    public void setCharacteristics(String characteristics) {
        this.characteristics = characteristics;
    }

    public String getImsi() {
        return imsi;
    }

    public void setImsi(String imsi) {
        this.imsi = imsi;
    }

    public String getIccid() {
        return iccid;
    }

    public void setIccid(String iccid) {
        this.iccid = iccid;
    }

    @Override
    public String toString() {
        return "DeviceInfo{" +
                "gameName='" + gameName + '\'' +
                ", wifiAddress='" + wifiAddress + '\'' +
                ", wifiSsid='" + wifiSsid + '\'' +
                ", androidId='" + androidId + '\'' +
                ", imei='" + imei + '\'' +
                ", model='" + model + '\'' +
                ", brand='" + brand + '\'' +
                ", simOperatorName='" + simOperatorName + '\'' +
                ", displayId='" + displayId + '\'' +
                ", fingerPrint='" + fingerPrint + '\'' +
                ", bootLoader='" + bootLoader + '\'' +
                ", procVersion='" + procVersion + '\'' +
                ", codeName='" + codeName + '\'' +
                ", baseBand='" + baseBand + '\'' +
                ", osVersion='" + osVersion + '\'' +
                ", osSdkVersion='" + osSdkVersion + '\'' +
                ", bootId='" + bootId + '\'' +
                ", incremental='" + incremental + '\'' +
                ", wifiBssid='" + wifiBssid + '\'' +
                ", wifiIp='" + wifiIp + '\'' +
                ", serialno='" + serialno + '\'' +
                ", device='" + device + '\'' +
                ", board='" + board + '\'' +
                ", product='" + product + '\'' +
                ", manufacturer='" + manufacturer + '\'' +
                ", buildId='" + buildId + '\'' +
                ", buildType='" + buildType + '\'' +
                ", buildHost='" + buildHost + '\'' +
                ", buildTags='" + buildTags + '\'' +
                ", buildUser='" + buildUser + '\'' +
                ", buildTime=" + buildTime +
                ", buildDescription='" + buildDescription + '\'' +
                ", hardware='" + hardware + '\'' +
                ", characteristics='" + characteristics + '\'' +
                ", imsi='" + imsi + '\'' +
                ", iccid='" + iccid + '\'' +
                '}';
    }
}
